package com.sc.study.clazz.service;

import java.util.List;
import com.sc.study.clazz.domain.ScClazz;
import com.sc.study.student.domain.ScStudentSubject;

/**
 * 班级Service接口
 * 
 * @author sc
 * @date 2022-02-27
 */
public interface IScClazzService
{
    /**
     * 查询班级包含学员和历史学员
     * @param scClazz
     * @return
     */
    public List<ScClazz> find(ScClazz scClazz);

    ScClazz selectScClazzByIdIncludeScStudent(Long clazzId);

    /**
     * 查询班级包含学员和班级科目
     * 
     * @param id 班级主键
     * @return 班级
     */
    public ScClazz selectScClazzById(Long id);

    /**
     * 查询班级列表包含年级
     * 
     * @param scClazz 班级
     * @return 班级集合
     */
    public List<ScClazz> selectScClazzList(ScClazz scClazz);

    /**
     * 新增班级
     * 
     * @param scClazz 班级
     * @return 结果
     */
    public int insertScClazz(ScClazz scClazz);

    /**
     * 修改班级
     * 
     * @param scClazz 班级
     * @return 结果
     */
    public int updateScClazz(ScClazz scClazz);

    /**
     * 批量删除班级
     * 
     * @param ids 需要删除的班级主键集合
     * @return 结果
     */
    public int deleteScClazzByIds(Long[] ids);

    /**
     * 删除班级信息
     * 
     * @param id 班级主键
     * @return 结果
     */
    public Integer deleteScClazzById(Long id);

    /**
     * 修改班级以及班级里的学生
     * @param scClazz 班级对象
     * @return
     */
    public int updateScClazzIncludeStudent(ScClazz scClazz);

    /**
     * 升学
     * @param scClazz 班级对象
     * @return
     */
    Integer enterHigherSchool(ScClazz scClazz);

}
